Communications within modern computer systems may occur at regular intervals, for example, as governed by a clock signal. For example, during a data transmission, a group of data may be transmitted during each rising edge of the clock signal. Communications performed with a clock signal are often referred to as synchronous communications. Synchronous communications systems may sometimes be preferred over asynchronous communications systems. In asynchronous systems, communications are performed by asserting handshaking signals which indicate when data being transmitted is valid and has been correctly received by the receiving device. Synchronous systems may be preferred over asynchronous systems, for example, because synchronous systems may perform communications more quickly without the overhead of the handshaking signals.
In some cases, different devices in a computers system may inherently perform operations at different speeds, for example, due to differences in both design and manufacturing. Even devices manufactured using the same manufacturing process may also perform operations at different speeds due to process variations between batches and even due to process variations within a single batch. Because different devices in a given system may operate at different speeds with respect to each other and with respect to other systems, it may be difficult to establish a clock frequency to be used with each manufactured system.
In some cases, designers may establish a maximum clock frequency which is low enough so that the majority of components in each manufactured system are capable of performing operations at the established clock frequency. Where a manufactured system is incapable of operating at the established maximum clock frequency, the system may be discarded as defective, thereby increasing waste in the manufacturing process. Furthermore, establishing a common clock frequency for communications systems may result in faster manufactured systems operating unnecessarily slowly at the established clock frequency. Furthermore, operating a system which communicates using a common clock signal may increase power consumption as the common clock signal is continually generated and transmitted to each of the devices in the system.
Accordingly what is need are an improved system, apparatus, and method for performing data transmission.